﻿<?xml version="1.0" encoding="utf-8"?>
<PatternTemplates PatternsVersion ="2.0">
  <PatternTemplate CodeLang="ManagedCPP" PatternName="AbstractFactory">
    <PatternProperties>
      <PatternAlias>Kit</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture>AbstractFactory.png</Picture>
      <CompilerSyntax>CLI</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <OnlineResources>http://en.wikipedia.org/wiki/Abstract_factory_pattern</OnlineResources>
      <!--<Description>AbstractFactory.htm</Description> -->
      <Category>Creational</Category>
      <!--<Culture>en</Culture> -->
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="CLIFactories.h">CLIFactoriesTemplate.h</FileTemplate>
      <FileTemplate FileItemName="CLIProducts.h">CLIProductsTemplate.h</FileTemplate>
      <FileTemplate FileItemName="CLIFactories.cpp">CLIFactoriesTemplate.cpp</FileTemplate>
      <FileTemplate FileItemName="CLIProducts.cpp">CLIProductsTemplate.cpp</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="ConcreteFactory1" IsRuntime="false" Description ="ConcreteFactory1">CLIConcreteFactory1</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteFactory2" IsRuntime="false" Description ="ConcreteFactory2">CLIConcreteFactory2</TemplateArgument>
      <TemplateArgument ArgumentName="ProductA1" IsRuntime="false" Description ="ProductA1">CLIProductA1</TemplateArgument>
      <TemplateArgument ArgumentName="ProductA2" IsRuntime="false" Description ="ProductA2">CLIProductA2</TemplateArgument>
      <TemplateArgument ArgumentName="ProductB1" IsRuntime="false" Description ="ProductB1">CLIProductB1</TemplateArgument>
      <TemplateArgument ArgumentName="ProductB2" IsRuntime="false" Description ="ProductB2">CLIProductB2</TemplateArgument>
      <TemplateArgument ArgumentName="AbstractProductA" IsRuntime="false" Description ="AbstractProductA">CLIAbstractProductA</TemplateArgument>
      <TemplateArgument ArgumentName="AbstractProductB" IsRuntime="false" Description ="AbstractProductB">CLIAbstractProductB</TemplateArgument>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
    </TemplateArguments>
  </PatternTemplate>  
  <PatternTemplate CodeLang="NativeCpp" PatternName="AbstractFactory">
    <PatternProperties>
      <PatternAlias>Kit</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <!-- <Picture>AbstractFactory.png</Picture> -->
      <OnlineResources>http://en.wikipedia.org/wiki/Abstract_factory_pattern</OnlineResources>
      <CompilerSyntax>CPP</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <Category>Creational</Category>
      <!--<Culture>en</Culture> -->
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="Factories.h">FactoriesTemplate.h</FileTemplate>
      <FileTemplate FileItemName="Products.h">ProductsTemplate.h</FileTemplate>
      <FileTemplate FileItemName="Factories.cpp">FactoriesTemplate.cpp</FileTemplate>
      <FileTemplate FileItemName="Products.cpp">ProductsTemplate.cpp</FileTemplate>      
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="ConcreteFactory1" IsRuntime="false" Description ="ConcreteFactory1">ConcreteFactory1</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteFactory2" IsRuntime="false" Description ="ConcreteFactory2">ConcreteFactory2</TemplateArgument>
      <TemplateArgument ArgumentName="ProductA1" IsRuntime="false" Description ="ProductA1">ProductA1</TemplateArgument>
      <TemplateArgument ArgumentName="ProductA2" IsRuntime="false" Description ="ProductA2">ProductA2</TemplateArgument>
      <TemplateArgument ArgumentName="ProductB1" IsRuntime="false" Description ="ProductB1">ProductB1</TemplateArgument>
      <TemplateArgument ArgumentName="ProductB2" IsRuntime="false" Description ="ProductB2">ProductB2</TemplateArgument>
      <TemplateArgument ArgumentName="AbstractProductA" IsRuntime="false" Description ="AbstractProductA">AbstractProductA</TemplateArgument>
      <TemplateArgument ArgumentName="AbstractProductB" IsRuntime="false" Description ="AbstractProductB">AbstractProductB</TemplateArgument>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="NativeCpp" PatternName="FactoryMethod">
    <PatternProperties>
      <PatternAlias>Virtual Constructor</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture>FactoryMethod.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Factory_method_pattern</OnlineResources>
      <CompilerSyntax>CPP</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <Category>Creational</Category>
      <!--<Culture>de</Culture> -->
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="FactoryMethod.h">FactoryMethodTemplate.h</FileTemplate>
      <FileTemplate FileItemName="FactoryMethod.cpp">FactoryMethodTemplate.cpp</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="IProduct" IsRuntime="false" Description ="IProduct interface">IProduct</TemplateArgument>
      <TemplateArgument ArgumentName="Creator" IsRuntime="false" Description ="AbstractCreator">Creator</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="ManagedCpp" PatternName="FactoryMethod">
    <PatternProperties>
      <PatternAlias>Virtual Constructor</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture>FactoryMethod.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Factory_method_pattern</OnlineResources>
      <CompilerSyntax>CLI</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <!--<Description StoredAs ="Text">Define an interface for creating an object,\r\nbut let subclasses decide which class to instantiate.&#13;&#10;Factory Method lets a class defer instantiation to subclasses.</Description>-->
      <Category>Creational</Category>
      <!--<Culture>de</Culture> -->
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="CLIFactoryMethod.h">CLIFactoryMethodTemplate.h</FileTemplate>
      <FileTemplate FileItemName="CLIFactoryMethod.cpp">CLIFactoryMethodTemplate.cpp</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="IProduct" IsRuntime="false" Description ="IProduct interface">CLIIProduct</TemplateArgument>
      <TemplateArgument ArgumentName="Creator" IsRuntime="false" Description ="AbstractCreator">CLICreator</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>  
  <PatternTemplate CodeLang="NativeCpp" PatternName="Singleton">
    <PatternProperties>
      <PatternAlias>Singleton</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <OnlineResources>http://en.wikipedia.org/wiki/Singleton_pattern</OnlineResources>
      <CompilerSyntax>CPP</CompilerSyntax>
      <ProgrammingStyle>static initialization</ProgrammingStyle>    
      <Category>Creational</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="Singleton.h">SingletonTemplate.h</FileTemplate>
      <FileTemplate FileItemName="Singleton.cpp">SingletonTemplate.cpp</FileTemplate>      
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Singleton" IsRuntime="false" Description ="Singleton class Name">ConcreteSingleton</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="ManagedCpp" PatternName="Singleton">
    <PatternProperties>
      <PatternAlias>Singleton</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <OnlineResources>http://en.wikipedia.org/wiki/Singleton_pattern</OnlineResources>
      <CompilerSyntax>CLI</CompilerSyntax>
      <ProgrammingStyle>static initialization</ProgrammingStyle>
      <Category>Creational</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="CLISingleton.h">CLISingletonTemplate.h</FileTemplate>
      <FileTemplate FileItemName="CLISingleton.cpp">CLISingletonTemplate.cpp</FileTemplate>      
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Singleton" IsRuntime="false" Description ="Singleton class Name">CLIConcreteSingleton</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>  
  <PatternTemplate CodeLang="ManagedCpp" PatternName="Singleton">
    <PatternProperties>
      <PatternAlias>Singleton</PatternAlias>
      <MinVSVersion>10.0</MinVSVersion>
      <OnlineResources>http://en.wikipedia.org/wiki/Singleton_pattern</OnlineResources>
      <CompilerSyntax>CLI</CompilerSyntax>
      <ProgrammingStyle>multi threaded</ProgrammingStyle>   
      <Category>Creational</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="CLIMultiThreadedSingleton.h">CLIMultiThreadedSingletonTemplate.h</FileTemplate>
      <FileTemplate FileItemName="CLIMultiThreadedSingleton.cpp">CLIMultiThreadedSingletonTemplate.cpp</FileTemplate>      
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="MultiThreadedSingleton" IsRuntime="false" Description ="Singleton class Name">MultiThreadedSingleton</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="ManagedCpp" PatternName="Bridge">
    <PatternProperties>
      <PatternAlias>Handle or Body</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture >Bridge.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Bridge_pattern</OnlineResources>
      <CompilerSyntax>CLI</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <!--<Description>bridge.rtf</Description>-->
      <Category>Structural</Category>
      <!--<Culture>de</Culture>-->
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="CLIBridge.cpp">CLIBridgeTemplate.cpp</FileTemplate>
      <FileTemplate FileItemName="CLIBridge.h">CLIBridgeTemplate.h</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Abstraction" IsRuntime="false" Description ="Abstraction interface">CLIAbstraction</TemplateArgument>
      <TemplateArgument ArgumentName="RefinedAbstraction" IsRuntime="false" Description ="Refined Abstraction">CLIRefinedAbstraction</TemplateArgument>
      <TemplateArgument ArgumentName="Implementor" IsRuntime="false" Description ="Implementor">CLIImplementor</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="NativeCpp" PatternName="Bridge">
    <PatternProperties>
      <PatternAlias>Handle or Body</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture >Bridge.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Bridge_pattern</OnlineResources>
      <CompilerSyntax>CPP</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <Category>Structural</Category>
      <!--<Culture>de</Culture>-->
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="Bridge.cpp">BridgeTemplate.cpp</FileTemplate>
      <FileTemplate FileItemName="Bridge.h">BridgeTemplate.h</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Abstraction" IsRuntime="false" Description ="Abstraction interface">Abstraction</TemplateArgument>
      <TemplateArgument ArgumentName="RefinedAbstraction" IsRuntime="false" Description ="Refined Abstraction">RefinedAbstraction</TemplateArgument>
      <TemplateArgument ArgumentName="Implementor" IsRuntime="false" Description ="Implementor">Implementor</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="NativeCpp" PatternName="State">
    <PatternProperties>
      <PatternAlias>Object of States</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture >state.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/State_pattern</OnlineResources>
      <CompilerSyntax>CPP</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <Category>Behavioral</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="State.h">StateTemplate.h</FileTemplate>
      <FileTemplate FileItemName="State.cpp">StateTemplate.cpp</FileTemplate>      
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Context" IsRuntime="false" Description ="Context class Name">Context</TemplateArgument>
      <TemplateArgument ArgumentName="IState" IsRuntime="false" Description ="IState interface Name">IState</TemplateArgument>
      <TemplateArgument ArgumentName="Handle" IsRuntime="false" Description ="Handle method Name">Handle</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteStateA" IsRuntime="false" Description ="ConcreteStateA class Name">ConcreteStateA</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteStateB" IsRuntime="false" Description ="ConcreteStateB class Name">ConcreteStateB</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteStateC" IsRuntime="false" Description ="ConcreteStateC class Name">ConcreteStateC</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="ManagedCpp" PatternName="State">
    <PatternProperties>
      <PatternAlias>Object of States</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture >state.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/State_pattern</OnlineResources>
      <CompilerSyntax>CLI</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <!--<Description StoredAs ="Text">Allows an object to alter its behavior when its internal state changes.&#13;&#10;The object will appear to change its class.
      </Description>-->
      <Category>Behavioral</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="CLIState.h">CLIStateTemplate.h</FileTemplate>
      <FileTemplate FileItemName="CLIState.cpp">CLIStateTemplate.cpp</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Context" IsRuntime="false" Description ="Context class Name">CLIContext</TemplateArgument>
      <TemplateArgument ArgumentName="IState" IsRuntime="false" Description ="IState interface Name">ICLIState</TemplateArgument>
      <TemplateArgument ArgumentName="Handle" IsRuntime="false" Description ="Handle method Name">Handle</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteStateA" IsRuntime="false" Description ="ConcreteStateA class Name">CLIConcreteStateA</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteStateB" IsRuntime="false" Description ="ConcreteStateB class Name">CLIConcreteStateB</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteStateC" IsRuntime="false" Description ="ConcreteStateC class Name">CLIConcreteStateC</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="ManagedCpp" PatternName="Proxy">
    <PatternProperties>
      <PatternAlias>Surogate</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture >proxy.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Proxy_pattern</OnlineResources>
      <CompilerSyntax>CLI</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <Category>Structural</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="CLIProxy.h">CLIProxyTemplate.h</FileTemplate>
      <FileTemplate FileItemName="CLIProxy.cpp">CLIProxyTemplate.cpp</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="ISubject" IsRuntime="false" Description ="ISubject interface Name">ICLISubject</TemplateArgument>
      <TemplateArgument ArgumentName="Request" IsRuntime="false" Description ="Request method Name">CLIRequest</TemplateArgument>
      <TemplateArgument ArgumentName="Proxy" IsRuntime="false" Description ="Proxy class Name">CLIProxy</TemplateArgument>
      <TemplateArgument ArgumentName="RealSubject" IsRuntime="false" Description ="RealSubject class Name">CLIRealSubject</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="NativeCpp" PatternName="Proxy">
    <PatternProperties>
      <PatternAlias>Surogate</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture >proxy.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Proxy_pattern</OnlineResources>
      <CompilerSyntax>CPP</CompilerSyntax>
      <ProgrammingStyle>Plain</ProgrammingStyle>
      <!--<Description StoredAs ="Text">Provides a surrogate or placeholder for another object to control access to it.
      </Description>-->
      <Category>Structural</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="Proxy.h">ProxyTemplate.h</FileTemplate>
      <FileTemplate FileItemName="Proxy.cpp">ProxyTemplate.cpp</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Subject" IsRuntime="false" Description ="Subject class Name">Subject</TemplateArgument>
      <TemplateArgument ArgumentName="Request" IsRuntime="false" Description ="Request method Name">Request</TemplateArgument>
      <TemplateArgument ArgumentName="Proxy" IsRuntime="false" Description ="Proxy class Name">Proxy</TemplateArgument>
      <TemplateArgument ArgumentName="RealSubject" IsRuntime="false" Description ="RealSubject class Name">RealSubject</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="NativeCpp" PatternName="Chain">
    <PatternProperties>
      <PatternAlias>Chain of Responsability</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture >chain.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Chain_of_responsibility_pattern</OnlineResources>
      <CompilerSyntax>CPP</CompilerSyntax>
      <ProgrammingStyle>plain</ProgrammingStyle>
      <Category>Behavioral</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="chain.h">chainTemplate.h</FileTemplate>
      <FileTemplate FileItemName="chain.cpp">chainTemplate.cpp</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="Request" IsRuntime="false" Description ="Request class Name">Request</TemplateArgument>
      <TemplateArgument ArgumentName="Handler" IsRuntime="false" Description ="Handler class Name">Handler</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteHandlerA" IsRuntime="false" Description ="ConcreteHandlerA class Name">ConcreteHandlerA</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteHandlerB" IsRuntime="false" Description ="ConcreteHandlerB class Name">ConcreteHandlerB</TemplateArgument>
      <TemplateArgument ArgumentName="ConcreteHandlerC" IsRuntime="false" Description ="ConcreteHandlerC class Name">ConcreteHandlerC</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>
  <PatternTemplate CodeLang="ManagedCpp" PatternName="Chain">
    <PatternProperties>
      <PatternAlias>Chain of Responsability</PatternAlias>
      <MinVSVersion>9.0</MinVSVersion>
      <Picture>chain.png</Picture>
      <OnlineResources>http://en.wikipedia.org/wiki/Chain_of_responsibility_pattern</OnlineResources>
      <CompilerSyntax>CLI</CompilerSyntax>
      <ProgrammingStyle>plain</ProgrammingStyle>
      <!--<Description StoredAs ="Text">Avoids coupling the sender of a request to its receiver by giving more than one object a chance to handle the request.
        Chain the receiving objects and pass the request along the chain until an object handles it.
      </Description> -->
      <Category>Behavioral</Category>
    </PatternProperties>
    <FileTemplates>
      <FileTemplate FileItemName="clrchain.h">clrchainTemplate.h</FileTemplate>
      <FileTemplate FileItemName="clrchain.cpp">clrchainTemplate.cpp</FileTemplate>
    </FileTemplates>
    <TemplateArguments>
      <TemplateArgument ArgumentName="RootNamespace" IsRuntime="True" Description ="NameSpace"/>
      <TemplateArgument ArgumentName="CLRRequest" IsRuntime="false" Description ="Request class Name">CLRRequest</TemplateArgument>
      <TemplateArgument ArgumentName="CLRHandler" IsRuntime="false" Description ="Handler class Name">CLRHandler</TemplateArgument>
      <TemplateArgument ArgumentName="CLRConcreteHandlerA" IsRuntime="false" Description ="ConcreteHandlerA class Name">CLRConcreteHandlerA</TemplateArgument>
      <TemplateArgument ArgumentName="CLRConcreteHandlerB" IsRuntime="false" Description ="ConcreteHandlerB class Name">CLRConcreteHandlerB</TemplateArgument>
      <TemplateArgument ArgumentName="CLRConcreteHandlerC" IsRuntime="false" Description ="ConcreteHandlerC class Name">CLRConcreteHandlerC</TemplateArgument>
    </TemplateArguments>
  </PatternTemplate>  
</PatternTemplates>